package com.probox.order.api.domain;

import lombok.Data;

import java.util.List;

/**
 * 微信分账对象
 */
@Data
public class ProfitShareVo implements java.io.Serializable {
    //子商户号
    private String sub_mchid;
    //应用id
    private String appid;
    //子应用ID
    private String sub_appid;
    //分账接收方类型 枚举值：
    //MERCHANT_ID：商户ID
    //PERSONAL_OPENID：个人openid（由父商户APPID转换得到）
    //PERSONAL_SUB_OPENID：个人sub_openid（由子商户APPID转换得到）
    private String type;
    //账号 类型是MERCHANT_ID时，是商户号 类型是PERSONAL_OPENID时，是个人openid 类型是PERSONAL_SUB_OPENID时，是个人sub_openid
    private String account;
    //与分账方的关系类型 子商户与接收方的关系。 本字段值为枚举：
    //SERVICE_PROVIDER：服务商
    //STORE：门店
    //STAFF：员工
    //STORE_OWNER：店主
    //PARTNER：合作伙伴
    //HEADQUARTER：总部
    //BRAND：品牌方
    //DISTRIBUTOR：分销商
    //USER：用户
    //SUPPLIER： 供应商
    //CUSTOM：自定义
    private String relation_type;

    //子商户与接收方具体的关系，本字段最多10个字。
    //当字段relation_type的值为CUSTOM时，本字段必填；
    //当字段relation_type的值不为CUSTOM时，本字段无需填写
    private String custom_relation;

    //微信支付订单号
    private String transaction_id;

    //商户系统内部的分账单号，在商户系统内部唯一，同一分账单号多次请求等同一次
    private String out_order_no;

    //分账的原因描述，分账账单中需要体现
    private String description;

    //分账单状态（每个接收方的分账结果请查看receivers中的result字段），枚举值：
    //1、PROCESSING：处理中
    //2、FINISHED：分账完成
    private String state;

    //分账接收人
    private List<ProfitShareReceiver> receivers;

    //是否解冻剩余未分资金
    // 1、如果为true，该笔订单剩余未分账的金额会解冻回分账方商户；
    //2、如果为false，该笔订单剩余未分账的金额不会解冻回分账方商户，可以对该笔订单再次进行分账。
    private Boolean unfreeze_unsplit;

    //子商户允许父商户分账的最大比例，单位万分比，比如2000表示20%
    private Integer max_ratio;

    //错误代码，出错时才返回
    private String code;
    //错误消息，出错时才返回
    private String message;

    private String name;

}
